package work931;

/**
 * @author chenmin
 * @desc TODO
 * @date 2025/9/3
 *
 * 2、定义一个怪兽类Monster，可以通过这个类创建怪兽角色
 * 属性：
 *     怪兽拥有名称name，等级level，血量blood，攻击力power，防御力defence，种族kind。
 * 方法：
 *     怪兽拥有基本攻击方法attack(Hero h)，
 *     死亡判定方法isDead()，
 *     获取怪兽信息的方法show()。
 *
 *  设计：
 *     依赖关系   attack(Hero h)
 */
public class Monster extends Role {

    /**
     * 怪兽拥有基本攻击方法
     * @param h  英雄
     */
    public void attack(Hero h){
        //计算本回合的英雄失血量 = 怪兽的攻击力 - 英雄的防御力
        int blood = this.power - h.getDefence();
        if(blood>0){
            //计算英雄的失血量
            h.setBlood(h.getBlood() - blood);
            System.out.println("本回合英雄失血量为："+blood +" , 剩余血量："+h.getBlood());
        }else{
            System.out.println("本回合攻击无效");
        }
    }

    public Monster() {
        super();
    }

    public Monster(String name, int level, int blood, String kind, int power, int defence) {
        super(name, level, blood, kind, power, defence);
    }

    @Override
    public void show() {
        super.show();
    }

    @Override
    public String toString() {
        return "Monster{name = " + name + ", level = " + level + ", blood = " + blood + ", kind = " + kind + ", power = " + power + ", defence = " + defence + "}";
    }
}
